// magic.h
// Generated on: 08/14/2020 11:38:10

#pragma once
#include "common.hpp"
#include "details.hpp"

namespace magic {
unsigned char magic_dosexe[2] = {0x4D,0x5A};
unsigned char magic_elf[4] = {0x7F,0x45,0x4C,0x46};
unsigned char magic_dex[6] = {0x64,0x65,0x78,0x0A,0x30,0x33};
unsigned char magic_lib[8] = {0x21,0x3C,0x61,0x72,0x63,0x68,0x3E,0x0A};
unsigned char magic_obj[2] = {0x4C,0x01};
unsigned char magic_pdb1[39] = {0x4D,0x69,0x63,0x72,0x6F,0x73,0x6F,0x66,0x74,0x20,0x43,0x2F,0x43,0x2B,0x2B,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x32,0x2E,0x30,0x30,0x0D,0x0A};
unsigned char magic_pdb2[29] = {0x4D,0x69,0x63,0x72,0x6F,0x73,0x6F,0x66,0x74,0x20,0x43,0x2F,0x43,0x2B,0x2B,0x20,0x4D,0x53,0x46,0x20,0x37,0x2E,0x30,0x30,0x0D,0x0A,0x1A,0x44,0x53};
unsigned char magic_zip[2] = {0x50,0x4B};
unsigned char magic_rar[6] = {0x52,0x61,0x72,0x21,0x1A,0x07};
unsigned char magic_7z[6] = {0x37,0x7A,0xBC,0xAF,0x27,0x1C};
unsigned char magic_tarzlzw[2] = {0x1F,0x9D};
unsigned char magic_tarzlzh[2] = {0x1f,0xA0};
unsigned char magic_bz2[3] = {0x42,0x5A,0x68};
unsigned char magic_tar[5] = {0x75,0x73,0x74,0x61,0x72};
unsigned char magic_gz[2] = {0x1F,0x8B};
unsigned char magic_cab[4] = {0x4D,0x53,0x43,0x46};
unsigned char magic_lha[3] = {0x2D,0x6C,0x68};
unsigned char magic_vhd[8] = {0x63,0x6F,0x6E,0x65,0x63,0x74,0x69,0x78};
unsigned char magic_xz[6] = {0xFD,0x37,0x7A,0x58,0x5A,0x00};
unsigned char magic_iso1[5] = {0x43,0x44,0x30,0x30,0x31};
unsigned char magic_iso2[5] = {0x43,0x44,0x30,0x30,0x31};
unsigned char magic_iso3[5] = {0x43,0x44,0x30,0x30,0x31};
unsigned char magic_udf1[5] = {0x42,0x45,0x41,0x30,0x31};
unsigned char magic_udf2[5] = {0x42,0x4F,0x4F,0x54,0x32};
unsigned char magic_udf3[5] = {0x43,0x44,0x30,0x30,0x31};
unsigned char magic_udf4[5] = {0x43,0x44,0x57,0x30,0x32};
unsigned char magic_udf5[5] = {0x4E,0x53,0x52,0x30,0x32};
unsigned char magic_udf6[5] = {0x4E,0x53,0x52,0x30,0x33};
unsigned char magic_udf7[5] = {0x54,0x45,0x41,0x30,0x31};
unsigned char magic_vmdk[3] = {0x4B,0x44,0x4D};
unsigned char magic_pcap[4] = {0xD4,0xC3,0xB2,0xA1};
unsigned char magic_pcapn[4] = {0x4D,0x3C,0xB2,0xA1};
unsigned char magic_rpm[4] = {0xED,0xAB,0xEE,0xDB};
unsigned char magic_dos_c1[8] = {0x53,0x5A,0x44,0x44,0x88,0xF0,0x27,0x33};
unsigned char magic_dos_c2[8] = {0x4B,0x57,0x41,0x4A,0x88,0xF0,0x27,0xD1};
unsigned char magic_dos_c3[8] = {0x53,0x5A,0x20,0x88,0xF0,0x27,0x33,0xD1};
unsigned char magic_sdi1[8] = {0x24,0x53,0x44,0x49,0x30,0x30,0x30,0x31};
unsigned char magic_wim1[7] = {0x4D,0x53,0x57,0x49,0x4D,0x00,0x00};
unsigned char magic_ace1[7] = {0x2A,0x2A,0x41,0x43,0x45,0x2A,0x2A};
unsigned char magic_ace2[7] = {0x2A,0x2A,0x41,0x43,0x45,0x2A,0x2A};
unsigned char magic_ico[4] = {0x00,0x00,0x01,0x00};
unsigned char magic_gif87[6] = {0x47,0x49,0x46,0x38,0x37,0x61};
unsigned char magic_gif89[6] = {0x47,0x49,0x46,0x38,0x39,0x61};
unsigned char magic_tiff_l[4] = {0x49,0x49,0x2A,0x00};
unsigned char magic_tiff_b[4] = {0x4D,0x4D,0x00,0x2A};
unsigned char magic_jpg[2] = {0xFF,0xD8};
unsigned char magic_png[8] = {0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A};
unsigned char magic_bmp[2] = {0x42,0x4D};
unsigned char magic_cur[4] = {0x00,0x00,0x02,0x00};
unsigned char magic_bmpOS2a[2] = {0x42,0x41};
unsigned char magic_bmpOS2ci[2] = {0x43,0x49};
unsigned char magic_bmpOS2cp[2] = {0x43,0x50};
unsigned char magic_bmpOS2i[2] = {0x49,0x43};
unsigned char magic_bmpOS2p[2] = {0x50,0x54};
unsigned char magic_psp[25] = {0x50,0x61,0x69,0x6E,0x74,0x20,0x53,0x68,0x6F,0x70,0x20,0x50,0x72,0x6F,0x20,0x49,0x6D,0x61,0x67,0x65,0x20,0x46,0x69,0x6C,0x65};
unsigned char magic_jbf[15] = {0x4A,0x41,0x53,0x43,0x20,0x42,0x52,0x4F,0x57,0x53,0x20,0x46,0x49,0x4C,0x45};
unsigned char magic_oless[4] = {0xD0,0xCF,0x11,0xE0};
unsigned char magic_ps[4] = {0x25,0x21,0x50,0x53};
unsigned char magic_pdf[4] = {0x25,0x50,0x44,0x46};
unsigned char magic_db[16] = {0x53,0x51,0x4C,0x69,0x74,0x65,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x20,0x33,0x00};
unsigned char magic_dwg[4] = {0x41,0x43,0x31,0x30};
unsigned char magic_lnk[20] = {0x4C,0x00,0x00,0x00,0x01,0x14,0x02,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46};
unsigned char magic_biff2[2] = {0x09,0x00};
unsigned char magic_biff3[2] = {0x09,0x02};
unsigned char magic_biff4[2] = {0x09,0x04};
unsigned char magic_ppt95[38] = {0x4D,0x69,0x63,0x72,0x6F,0x73,0x6F,0x66,0x74,0x20,0x28,0x52,0x29,0x20,0x50,0x6F,0x77,0x65,0x72,0x50,0x6F,0x69,0x6E,0x74,0x20,0x28,0x52,0x29,0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,0x73,0x20,0x20};
unsigned char magic_ppt3[4] = {0xED,0xDE,0xAD,0x0B};
unsigned char magic_ppt3s[4] = {0x0B,0xAD,0xDE,0xED};
unsigned char magic_mdbsys[19] = {0x00,0x01,0x00,0x00,0x4A,0x65,0x74,0x20,0x53,0x79,0x73,0x74,0x65,0x6D,0x20,0x44,0x42,0x20,0x20};
unsigned char magic_mdbstd[19] = {0x00,0x01,0x00,0x00,0x53,0x74,0x61,0x6E,0x64,0x61,0x72,0x64,0x20,0x4A,0x65,0x74,0x20,0x44,0x42};
unsigned char magic_mdbtmp[19] = {0x00,0x01,0x00,0x00,0x54,0x65,0x6D,0x70,0x20,0x4A,0x65,0x74,0x20,0x44,0x42,0x20,0x20,0x20,0x20};
unsigned char magic_accdbsys[19] = {0x00,0x01,0x00,0x00,0x41,0x43,0x45,0x20,0x53,0x79,0x73,0x74,0x65,0x6D,0x20,0x44,0x42,0x20,0x20};
unsigned char magic_accdbstd[19] = {0x00,0x01,0x00,0x00,0x53,0x74,0x61,0x6E,0x64,0x61,0x72,0x64,0x20,0x41,0x43,0x45,0x20,0x44,0x42};
unsigned char magic_accdbtmp[19] = {0x00,0x01,0x00,0x00,0x54,0x65,0x6D,0x70,0x20,0x41,0x43,0x45,0x20,0x44,0x42,0x20,0x20,0x20,0x20};
unsigned char magic_one[16] = {0xE4,0x52,0x5C,0x7B,0x8C,0xD8,0xA7,0x4D,0xAE,0xB1,0x53,0x78,0xD0,0x29,0x96,0xD3};
unsigned char magic_onetoc[16] = {0xA1,0x2F,0xFF,0x43,0xD9,0xEF,0x76,0x4C,0x9E,0xE2,0x10,0xEA,0x57,0x22,0x76,0x5F};
unsigned char magic_pst[4] = {0x21,0x42,0x44,0x4E};
unsigned char magic_wab[16] = {0x9C,0xCB,0xCB,0x8D,0x13,0x75,0xD2,0x11,0x91,0x58,0x00,0xC0,0x4F,0x79,0x56,0xA4};
unsigned char magic_chm[4] = {0x49,0x54,0x53,0x46};
unsigned char magic_dmp32[8] = {0x50,0x41,0x47,0x45,0x44,0x55,0x4D,0x50};
unsigned char magic_dmp64[8] = {0x50,0x41,0x47,0x45,0x44,0x55,0x36,0x34};
unsigned char magic_hdmp[6] = {0x4D,0x44,0x4D,0x50,0x93,0xA7};
unsigned char magic_rtf[6] = {0x7B,0x5C,0x72,0x74,0x66,0x31};
unsigned char magic_skp[32] = {0xFF,0xFE,0xFF,0x0E,0x53,0x00,0x6B,0x00,0x65,0x00,0x74,0x00,0x63,0x00,0x68,0x00,0x55,0x00,0x70,0x00,0x20,0x00,0x4D,0x00,0x6F,0x00,0x64,0x00,0x65,0x00,0x6C,0x00};
unsigned char magic_mdi[4] = {0x45,0x50,0x2a,0x00};
unsigned char magic_hlp1[4] = {0x3f,0x5f,0x03,0x00};
unsigned char magic_hlp2[5] = {0x04,0x12,0x46,0x31,0x14};
unsigned char magic_mcw1[3] = {0xfe,0x32,0x00};
unsigned char magic_mcw2[3] = {0xfe,0x33,0x00};
unsigned char magic_mcw3[3] = {0xfe,0x34,0x00};
unsigned char magic_mcw4[8] = {0xfe,0x37,0x00,0x1c,0x00,0x00,0x00,0x00};
unsigned char magic_mcw5[8] = {0xfe,0x37,0x00,0x23,0x00,0x00,0x00,0x00};
unsigned char magic_pcw3[2] = {0xbe,0x31};
unsigned char magic_doc_old1[2] = {0x9B,0xA5};
unsigned char magic_doc_old2[2] = {0x9C,0xA5};
unsigned char magic_doc_old3[2] = {0x08,0xEC};
unsigned char magic_doc_old4[2] = {0x08,0xED};
unsigned char magic_doc_old5[2] = {0x22,0x43};
unsigned char magic_doc_old6[2] = {0xDB,0xA5};
unsigned char magic_wri1[2] = {0x31,0xBE};
unsigned char magic_wri2[2] = {0x32,0xBE};
unsigned char magic_wri3[5] = {0xBE,0x00,0x00,0x00,0xAB};
unsigned char magic_wps[2] = {0x01,0xFE};
unsigned char magic_wp5[4] = {0xFF,0x57,0x50,0x43};
unsigned char magic_wpenc[4] = {0xff,0xff,0x61,0x61};
unsigned char magic_mp4[4] = {0x66,0x74,0x79,0x70};
unsigned char magic_asf[16] = {0x30,0x26,0xB2,0x75,0x8E,0x66,0xCF,0x11,0xA6,0xD9,0x00,0xAA,0x00,0x62,0xCE,0x6C};
unsigned char magic_riff[4] = {0x52,0x49,0x46,0x46};
unsigned char magic_mp3[2] = {0xFF,0xFB};
unsigned char magic_mp3id3v2[3] = {0x49,0x44,0x33};
unsigned char magic_flv[3] = {0x46,0x4C,0x56};
unsigned char magic_swf[3] = {0x46,0x57,0x53};
unsigned char magic_cwf[3] = {0x43,0x57,0x53};
unsigned char magic_flac[4] = {0x66,0x4C,0x61,0x43};
unsigned char magic_midi[4] = {0x4D,0x54,0x68,0x64};
unsigned char magic_woff1[4] = {0x77,0x4f,0x46,0x46};
unsigned char magic_woff2[4] = {0x77,0x4f,0x46,0x32};
unsigned char magic_otf[4] = {0x4F,0x54,0x54,0x4F};
unsigned char magic_pfm[4] = {0x74,0x79,0x70,0x31};
unsigned char magic_ttf1[4] = {0x74,0x72,0x75,0x65};
unsigned char magic_ttf2[4] = {0x00,0x01,0x00,0x00};
unsigned char magic_sh[2] = {0x23,0x21};
unsigned char magic_xml_al[5] = {0x3C,0x3F,0x78,0x6D,0x6C};
unsigned char magic_xml_au[5] = {0x3C,0x3F,0x58,0x4D,0x4C};
unsigned char magic_xml_8l[8] = {0xEF,0xBB,0xBF,0x3C,0x3F,0x78,0x6D,0x6C};
unsigned char magic_xml_8u[8] = {0xEF,0xBB,0xBF,0x3C,0x3F,0x58,0x4D,0x4C};
unsigned char magic_xml_ul[12] = {0xFF,0xFE,0x3C,0x00,0x3F,0x00,0x78,0x00,0x6D,0x00,0x6C,0x00};
unsigned char magic_xml_uu[12] = {0xFF,0xFE,0x3C,0x00,0x3F,0x00,0x58,0x00,0x4D,0x00,0x4C,0x00};
unsigned char magic_html_hal[5] = {0x3C,0x68,0x74,0x6D,0x6C};
unsigned char magic_html_dal[5] = {0x3C,0x21,0x64,0x6F,0x63};
unsigned char magic_html_hul[12] = {0xFF,0xFE,0x3C,0x00,0x68,0x00,0x74,0x00,0x6D,0x00,0x6C,0x00};
unsigned char magic_html_dul[12] = {0xFF,0xFE,0x3C,0x00,0x21,0x00,0x64,0x00,0x6F,0x00,0x63,0x00};
unsigned char magic_html_hau[5] = {0x3C,0x48,0x54,0x4d,0x4c};
unsigned char magic_html_dau[5] = {0x3C,0x21,0x44,0x4f,0x43};
unsigned char magic_html_huu[12] = {0xFF,0xFE,0x3C,0x00,0x48,0x00,0x54,0x00,0x4D,0x00,0x4C,0x00};
unsigned char magic_html_duu[12] = {0xFF,0xFE,0x3C,0x00,0x21,0x00,0x44,0x00,0x4F,0x00,0x43,0x00};
unsigned char magic_html_h8l[8] = {0xEF,0xBB,0xBF,0x3C,0x68,0x74,0x6D,0x6C};
unsigned char magic_html_d8l[8] = {0xEF,0xBB,0xBF,0x3C,0x21,0x64,0x6F,0x63};
unsigned char magic_html_h8u[8] = {0xEF,0xBB,0xBF,0x3C,0x48,0x54,0x4d,0x4c};
unsigned char magic_html_d8u[8] = {0xEF,0xBB,0xBF,0x3C,0x21,0x44,0x4f,0x43};
unsigned char magic_slk1[4] = {0x49,0x44,0x3B,0x50};

std::vector<common::MagicInfo*> list;

void initList() {
	list.push_back(new common::MagicInfo("exe", "DOS Executable", "", 0, 2, magic_dosexe, Exec::Detailer));
	list.push_back(new common::MagicInfo("elf", "ELF Executable", "", 0, 4, magic_elf, nullptr));
	list.push_back(new common::MagicInfo("dex", "Dalvik Executable", "", 0, 6, magic_dex, nullptr));
	list.push_back(new common::MagicInfo("lib", "Microsoft Program Library Common Object File Format", "", 0, 8, magic_lib, nullptr));
	list.push_back(new common::MagicInfo("obj", "Microsoft Common Object File Format relocatable object code", "", 0, 2, magic_obj, nullptr));
	list.push_back(new common::MagicInfo("pdb", "Microsoft Program Database 2.0", "2", 0, 39, magic_pdb1, nullptr));
	list.push_back(new common::MagicInfo("pdb", "Microsoft Program Database 7.0", "7", 0, 29, magic_pdb2, nullptr));
	list.push_back(new common::MagicInfo("zip", "Zip Archive", "", 0, 2, magic_zip, zip::Detailer));
	list.push_back(new common::MagicInfo("rar", "Rar Archive", "", 0, 6, magic_rar, nullptr));
	list.push_back(new common::MagicInfo("7z", "7z Archive", "", 0, 6, magic_7z, nullptr));
	list.push_back(new common::MagicInfo("tar.z", "Tar.Zip Container", "LZW Compression", 0, 2, magic_tarzlzw, nullptr));
	list.push_back(new common::MagicInfo("tar.z", "Tar.Zip Container", "LZH Compression", 0, 2, magic_tarzlzh, nullptr));
	list.push_back(new common::MagicInfo("bz2", "BZip2 Container", "", 0, 3, magic_bz2, nullptr));
	list.push_back(new common::MagicInfo("tar", "Tar Archive", "", 0, 5, magic_tar, nullptr));
	list.push_back(new common::MagicInfo("gz", "GZIP Archive", "", 0, 2, magic_gz, nullptr));
	list.push_back(new common::MagicInfo("cab", "Microsoft Cabinet file", "", 0, 4, magic_cab, nullptr));
	list.push_back(new common::MagicInfo("lha", "LHArc (lha/lzh) Archive", "", 2, 3, magic_lha, nullptr));
	list.push_back(new common::MagicInfo("vhd", "Microsoft Virtual HardDisk", "", 0, 8, magic_vhd, nullptr));
	list.push_back(new common::MagicInfo("xz", "XZ Compressed File", "", 0, 6, magic_xz, nullptr));
	list.push_back(new common::MagicInfo("iso", "ISO 9660 Disk Image", "", 32769, 5, magic_iso1, nullptr));
	list.push_back(new common::MagicInfo("iso", "ISO 9660 Disk Image", "", 34817, 5, magic_iso2, nullptr));
	list.push_back(new common::MagicInfo("iso", "ISO 9660 Disk Image", "", 36864, 5, magic_iso3, nullptr));
	list.push_back(new common::MagicInfo("iso", "Universal Disk Format (ISO 13490/Ecma-168) - Beginning Extended Area Descriptor", "", 32769, 5, magic_udf1, nullptr));
	list.push_back(new common::MagicInfo("iso", "Universal Disk Format (ISO 13490/Ecma-168) - Boot Descriptor", "", 32769, 5, magic_udf2, nullptr));
	list.push_back(new common::MagicInfo("iso", "Universal Disk Format (ISO 13490/Ecma-168) - CD001 - ECMA-119", "", 32769, 5, magic_udf3, nullptr));
	list.push_back(new common::MagicInfo("iso", "Universal Disk Format (ISO 13490/Ecma-168) - Volume Descriptor", "", 32769, 5, magic_udf4, nullptr));
	list.push_back(new common::MagicInfo("iso", "Universal Disk Format (ISO 13490/Ecma-168) - NSR02 - ECMA-168", "", 32769, 5, magic_udf5, nullptr));
	list.push_back(new common::MagicInfo("iso", "Universal Disk Format (ISO 13490/Ecma-168) - NSR03 - ECMA-167", "", 32769, 5, magic_udf6, nullptr));
	list.push_back(new common::MagicInfo("iso", "Universal Disk Format (ISO 13490/Ecma-168) - Terminating Extended Area Descriptor", "", 32769, 5, magic_udf7, nullptr));
	list.push_back(new common::MagicInfo("vmdk", "VMWare Virtual Disk", "", 0, 3, magic_vmdk, nullptr));
	list.push_back(new common::MagicInfo("pcap", "Network Packet Capture File", "", 0, 4, magic_pcap, nullptr));
	list.push_back(new common::MagicInfo("pcap", "Network Packet Capture File", "Nanosecond-precision timestamps", 0, 4, magic_pcapn, nullptr));
	list.push_back(new common::MagicInfo("rpm", "Red Hat Package Manager File", "", 0, 4, magic_rpm, nullptr));
	list.push_back(new common::MagicInfo("_", "MS-DOS Installtion Compressed File", "SZDD", 0, 8, magic_dos_c1, nullptr));
	list.push_back(new common::MagicInfo("_", "MS-DOS Installtion Compressed File", "KWAJ", 0, 8, magic_dos_c2, nullptr));
	list.push_back(new common::MagicInfo("_", "MS-DOS Installtion Compressed File", "QBasic SZDD", 0, 8, magic_dos_c3, nullptr));
	list.push_back(new common::MagicInfo("sdi", "Microsoft System Deployment Image", "", 0, 8, magic_sdi1, nullptr));
	list.push_back(new common::MagicInfo("wim", "Windows Imaging File Format", "", 0, 7, magic_wim1, nullptr));
	list.push_back(new common::MagicInfo("ace", "ACE Archive", "", 7, 7, magic_ace1, nullptr));
	list.push_back(new common::MagicInfo("ace", "ACE Archive", "", 0, 7, magic_ace2, nullptr));
	list.push_back(new common::MagicInfo("ico", "Icon File", "", 0, 4, magic_ico, nullptr));
	list.push_back(new common::MagicInfo("gif", "GIF Image", "GIF87a", 0, 6, magic_gif87, nullptr));
	list.push_back(new common::MagicInfo("gif", "GIF Image", "GIF89a", 0, 6, magic_gif89, nullptr));
	list.push_back(new common::MagicInfo("tiff", "Tagged Image File", "little endian", 0, 4, magic_tiff_l, nullptr));
	list.push_back(new common::MagicInfo("tiff", "Tagged Image File", "big endian", 0, 4, magic_tiff_b, nullptr));
	list.push_back(new common::MagicInfo("jpg", "JPEG Image", "", 0, 2, magic_jpg, media::jpeg::Detailer));
	list.push_back(new common::MagicInfo("png", "Portable Network Graphics", "", 0, 8, magic_png, nullptr));
	list.push_back(new common::MagicInfo("bmp", "Bitmap Image", "", 0, 2, magic_bmp, nullptr));
	list.push_back(new common::MagicInfo("cur", "Cursor", "", 0, 4, magic_cur, nullptr));
	list.push_back(new common::MagicInfo("bmp", "Bitmap Image", "OS/2 Array", 0, 2, magic_bmpOS2a, nullptr));
	list.push_back(new common::MagicInfo("bmp", "Bitmap Image", "OS/2 Color Icon", 0, 2, magic_bmpOS2ci, nullptr));
	list.push_back(new common::MagicInfo("bmp", "Bitmap Image", "OS/2 Color Pointer", 0, 2, magic_bmpOS2cp, nullptr));
	list.push_back(new common::MagicInfo("bmp", " Bitmap Icon", "OS/2 Icon", 0, 2, magic_bmpOS2i, nullptr));
	list.push_back(new common::MagicInfo("bmp", "Bitmap Image", "OS/2 Pointer", 0, 2, magic_bmpOS2p, nullptr));
	list.push_back(new common::MagicInfo("psp", "Corel Paint Shop Pro Image file", "", 0, 25, magic_psp, nullptr));
	list.push_back(new common::MagicInfo("jbf", "Corel Paint Shop Pro browse file", "", 0, 15, magic_jbf, nullptr));
	list.push_back(new common::MagicInfo("oless", "OLE Structured Storage", "", 0, 4, magic_oless, oless::Detailer));
	list.push_back(new common::MagicInfo("ps", "PostScript document", "", 0, 4, magic_ps, nullptr));
	list.push_back(new common::MagicInfo("pdf", "PDF document", "", 0, 4, magic_pdf, nullptr));
	list.push_back(new common::MagicInfo("db", "SQLLite Database File", "", 0, 16, magic_db, nullptr));
	list.push_back(new common::MagicInfo("dwg", "Autocad Drawing", "", 0, 4, magic_dwg, document::dwg::DwgHelper));
	list.push_back(new common::MagicInfo("lnk", "LNK File", "", 0, 20, magic_lnk, nullptr));
	list.push_back(new common::MagicInfo("xls", "Microsoft Excel", "BIFF2", 0, 2, magic_biff2, nullptr));
	list.push_back(new common::MagicInfo("xls", "Microsoft Excel", "BIFF3", 0, 2, magic_biff3, nullptr));
	list.push_back(new common::MagicInfo("xls", "Microsoft Excel", "BIFF4", 0, 2, magic_biff4, nullptr));
	list.push_back(new common::MagicInfo("ppt", "Microsoft Powerpoint", "PPT95", 0, 38, magic_ppt95, nullptr));
	list.push_back(new common::MagicInfo("ppt", "Microsoft Powerpoint", "PPT3", 0, 4, magic_ppt3, nullptr));
	list.push_back(new common::MagicInfo("ppt", "Microsoft Powerpoint", "PPT3 Swap", 0, 4, magic_ppt3s, nullptr));
	list.push_back(new common::MagicInfo("mdb", "Microsoft Access Database", "MDB_System", 0, 19, magic_mdbsys, nullptr));
	list.push_back(new common::MagicInfo("mdb", "Microsoft Access Database", "MDB_Standard", 0, 19, magic_mdbstd, nullptr));
	list.push_back(new common::MagicInfo("mdb", "Microsoft Access Database", "MDB_Temp", 0, 19, magic_mdbtmp, nullptr));
	list.push_back(new common::MagicInfo("accdb", "Microsoft Access Database", "ACCDB_System", 0, 19, magic_accdbsys, nullptr));
	list.push_back(new common::MagicInfo("accdb", "Microsoft Access Database", "ACCDB_Standard", 0, 19, magic_accdbstd, nullptr));
	list.push_back(new common::MagicInfo("accdb", "Microsoft Access Database", "ACCDB_Temp", 0, 19, magic_accdbtmp, nullptr));
	list.push_back(new common::MagicInfo("one", "Microsoft OneNote", "", 0, 16, magic_one, nullptr));
	list.push_back(new common::MagicInfo("onetoc2", "Microsoft OneNote Table of Contents", "", 0, 16, magic_onetoc, nullptr));
	list.push_back(new common::MagicInfo("pst", "Microsoft Outlook Personal Storage Table", "", 0, 4, magic_pst, nullptr));
	list.push_back(new common::MagicInfo("wab", "Microsoft Outlook Address File", "", 0, 16, magic_wab, nullptr));
	list.push_back(new common::MagicInfo("chm", "Complied Help File", "", 0, 4, magic_chm, nullptr));
	list.push_back(new common::MagicInfo("dmp", "Windows Dump File", "32-bit", 0, 8, magic_dmp32, nullptr));
	list.push_back(new common::MagicInfo("dmp", "Windows Dump File", "64-bit", 0, 8, magic_dmp64, nullptr));
	list.push_back(new common::MagicInfo("hdmp", "Windows Dump File", "with heap", 0, 6, magic_hdmp, nullptr));
	list.push_back(new common::MagicInfo("rtf", "Rich Text Format", "", 0, 6, magic_rtf, nullptr));
	list.push_back(new common::MagicInfo("skp", "SketchUp Model", "", 0, 32, magic_skp, nullptr));
	list.push_back(new common::MagicInfo("mdi", "Microsoft Office Document Imaging", "", 0, 4, magic_mdi, nullptr));
	list.push_back(new common::MagicInfo("hlp", "Microsoft Help File", "", 0, 4, magic_hlp1, nullptr));
	list.push_back(new common::MagicInfo("hlp", "Ubuntu Help File", "", 0, 5, magic_hlp2, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word for Macintosh 1.0", "1", 0, 3, magic_mcw1, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word for Macintosh 2.0", "2", 0, 3, magic_mcw2, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word for Macintosh 3.0", "3", 0, 3, magic_mcw3, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word for Macintosh 4.0", "4", 0, 8, magic_mcw4, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word for Macintosh 5.0", "5", 0, 8, magic_mcw5, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft PC Word", "3", 0, 2, magic_pcw3, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word OLD", "", 0, 2, magic_doc_old1, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word OLD", "", 0, 2, magic_doc_old2, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word OLD (MP 2.0)", "", 0, 2, magic_doc_old3, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word OLD (MP 3.0)", "", 0, 2, magic_doc_old4, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft Word 1.0", "", 0, 2, magic_doc_old5, nullptr));
	list.push_back(new common::MagicInfo("doc", "Microsoft WinWord 2.0", "", 0, 2, magic_doc_old6, nullptr));
	list.push_back(new common::MagicInfo("wri", "MS Write", "1", 0, 2, magic_wri1, nullptr));
	list.push_back(new common::MagicInfo("wri", "MS Write", "2", 0, 2, magic_wri2, nullptr));
	list.push_back(new common::MagicInfo("wri", "MS Write", "3", 0, 5, magic_wri3, nullptr));
	list.push_back(new common::MagicInfo("wps", "Microsoft Works (1-4)", "", 0, 2, magic_wps, nullptr));
	list.push_back(new common::MagicInfo("wp5", "WordPerfect File", "5", 0, 4, magic_wp5, document::wp::Detailer));
	list.push_back(new common::MagicInfo("wp", "WordPerfect Encrypted File", "encrypted", 0, 4, magic_wpenc, document::wp::Detailer));
	list.push_back(new common::MagicInfo("mp4", "Mp4 Container", "", 4, 4, magic_mp4, media::mp4::Detailer));
	list.push_back(new common::MagicInfo("asf", "ASF Container", "", 0, 16, magic_asf, media::asf::Detailer));
	list.push_back(new common::MagicInfo("riff", "Riff file", "", 0, 4, magic_riff, media::riff::RIFFHelper));
	list.push_back(new common::MagicInfo("mp3", "MPEG-1 Layer 3 file", "", 0, 2, magic_mp3, nullptr));
	list.push_back(new common::MagicInfo("mp3", "MPEG-1 Layer 3 file", "ID3v2 Tag", 0, 3, magic_mp3id3v2, nullptr));
	list.push_back(new common::MagicInfo("flv", "Flash Video", "", 0, 3, magic_flv, nullptr));
	list.push_back(new common::MagicInfo("swf", "Shockwave Flash File", "", 0, 3, magic_swf, nullptr));
	list.push_back(new common::MagicInfo("swf", "Shockwave Flash File", "compressed", 0, 3, magic_cwf, nullptr));
	list.push_back(new common::MagicInfo("flac", "Free Lossless Audio Codec", "", 0, 4, magic_flac, nullptr));
	list.push_back(new common::MagicInfo("midi", "MIDI Sound File", "", 0, 4, magic_midi, nullptr));
	list.push_back(new common::MagicInfo("woff", "Web Open Font Format", "1.0", 0, 4, magic_woff1, nullptr));
	list.push_back(new common::MagicInfo("woff", "Web Open Font Format", "2.0", 0, 4, magic_woff2, nullptr));
	list.push_back(new common::MagicInfo("otf", "Open Type Font", "", 0, 4, magic_otf, nullptr));
	list.push_back(new common::MagicInfo("pfm", "Postscript Font", "type1", 0, 4, magic_pfm, nullptr));
	list.push_back(new common::MagicInfo("ttf", "True Type Font", "OSx", 0, 4, magic_ttf1, nullptr));
	list.push_back(new common::MagicInfo("ttf", "True Type Font", "windows", 0, 4, magic_ttf2, nullptr));
	list.push_back(new common::MagicInfo("sh", "*nix shebang script", "", 0, 2, magic_sh, nullptr));
	list.push_back(new common::MagicInfo("xml", "XML", "ascii lowercase", 0, 5, magic_xml_al, nullptr));
	list.push_back(new common::MagicInfo("xml", "XML", "ascii uppercase", 0, 5, magic_xml_au, nullptr));
	list.push_back(new common::MagicInfo("xml", "XML", "utf8 lowercase", 0, 8, magic_xml_8l, nullptr));
	list.push_back(new common::MagicInfo("xml", "XML", "utf8 uppercase", 0, 8, magic_xml_8u, nullptr));
	list.push_back(new common::MagicInfo("xml", "XML", "unicode lowercase", 0, 12, magic_xml_ul, nullptr));
	list.push_back(new common::MagicInfo("xml", "XML", "unicode uppercase", 0, 12, magic_xml_uu, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "ascii lowercase html", 0, 5, magic_html_hal, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "ascii lowercase doctype", 0, 5, magic_html_dal, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "unicode lowercase html", 0, 12, magic_html_hul, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "unicode lowercase doctype", 0, 12, magic_html_dul, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "ascii uppercase html", 0, 5, magic_html_hau, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "ascii uppercase doctype", 0, 5, magic_html_dau, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "unicode uppercase html", 0, 12, magic_html_huu, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "unicode uppercase doctype", 0, 12, magic_html_duu, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "utf8 lowercase html", 0, 8, magic_html_h8l, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "utf8 lowercase doctype", 0, 8, magic_html_d8l, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "utf8 uppercase html", 0, 8, magic_html_h8u, nullptr));
	list.push_back(new common::MagicInfo("html", "HTML Document", "utf8 uppercase doctype", 0, 8, magic_html_d8u, nullptr));
	list.push_back(new common::MagicInfo("slk", "Microsoft SYLK (Symbolic Link) file", "", 0, 4, magic_slk1, nullptr));
}}
